////////////////////////////////////////////////////////////////////////////////

#include "moving_object.h"

////////////////////////////////////////////////////////////////////////////////

#include <cassert>

////////////////////////////////////////////////////////////////////////////////


MovingObject::MovingObject()
: m_Velocity(0,0), m_AbsoluteVelocity(0)
{
}


////////////////////////////////////////////////////////////////////////////////


MovingObject::~MovingObject()
{
}


////////////////////////////////////////////////////////////////////////////////


STM::Velocity MovingObject::GetVelocity() const
{
    return m_Velocity;
}


////////////////////////////////////////////////////////////////////////////////



void MovingObject::SetVelocity( const STM::Velocity& _velocity )
{
    m_Velocity = _velocity;
}


////////////////////////////////////////////////////////////////////////////////


double MovingObject::GetAbsoluteVelocity() const
{
    return m_AbsoluteVelocity;
}


////////////////////////////////////////////////////////////////////////////////


void MovingObject::SetAbsoluteVelocity( double _absVelocity )
{
    m_AbsoluteVelocity = _absVelocity;
}


////////////////////////////////////////////////////////////////////////////////


void MovingObject::Move()
{
    STM::Position position = GetPosition();
    
    position.first += m_Velocity.first;
    position.second += m_Velocity.second;

    SetPosition(position);
}


////////////////////////////////////////////////////////////////////////////////
